= ["Using Pidgin"] =

[[TOC(inline,noheading)]]

== All Platforms ==

=== How do I use AIM, MSN, Yahoo!, Jabber/XMPP, ICQ, or any other protocol? ===
Use the Account Editor (Accounts->Add/Edit) to add the account of the appropriate messaging service.  Use the checkbox in the account editor to enable the current account.

=== How do I set a buddy icon? ===
There are two ways to do this:
  * '''Global''' - This will affect all of your accounts.  On the Buddy List window, beside the status selector at the bottom, there is an area that will have a generic photo icon if you have no icon set.  You can click that and select an icon from there.  The icon will take effect for all accounts you have configured in Pidgin.
  * '''Per-account''' - This will affect only the account you modify.  Go to Accounts->''your account''->Edit Account.  On that dialog, check the box labeled "Use this buddy icon for this account:", then click the leftmost button below that checkbox.  Select your buddy icon.

=== How do I change the font Pidgin uses?  The background color? ===
The font preference in Pidgin applies only for the formatting of outgoing messages on those protocols which support said formatting.  The display fonts used by the rest of Pidgin are those specified by GTK+, the toolkit we use to create the user interface.  To change this font, you need to edit your `~/.gtkrc-2.0` file.  On Windows, this file is located at `C:\Documents and Settings\username\.themes\Default\gtk-2.0\gtkrc`.  If that file does not exist, simply create it.

As an example, you can put this into `.gtkrc-2.0` to change the font size for all GTK+ applications:
{{{
# Sets the font used by all gtk applications.
gtk-font-name = "Verdana 9"
}}}

Alternatively, you can do this to change the font size for other elements:
{{{
# This is the style section.  You need this for the examples below.
# If you are going to copy the example, copy the entire block,
# including the "{" and "}" lines.
style "imhtml-fix"
{
    font_name = "Sans 10"
}

# This will apply the font style just shown to various components.
# If you are going to copy the example, copy the line that does
# what you want.

# Conversation entry box--where you type.
widget "*pidgin_conv_entry" style "imhtml-fix"

# Conversation history pane--where you read the conversation.
widget "*pidgin_conv_imhtml" style "imhtml-fix"

# Log viewer--where you read stored logs
widget "*pidgin_log_imhtml" style "imhtml-fix"

# formatting-capable entry areas (IMHtml widgets) in request dialogs
widget "*pidgin_request_imhtml" style "imhtml-fix"

# formatting-capable notification areas in dialogs (again, IMHtml widgets)
widget "*pidgin_notify_imhtml" style "imhtml-fix"
}}}

Background colors can be changed similarly, by finding the correct widget names and setting appropriate bg elements.  Other widgets in Pidgin can be controlled in a similar manner.

You could also switch GTK+ themes.  Themes and information on using them can be found at http://themes.freshmeat.net, http://art.gnome.org, or by searching on your favorite search engine, such as Google.

=== How do I make Enter make a newline and Ctrl+Enter send? ===

Locate or create your `gtkrc-2.0` file and insert:
{{{
binding "my-bindings"
{
    bind "Return" { "insert-at-cursor" ("\n") }
    bind "<ctrl>Return" { "message_send" () }
}
widget "*pidgin_conv_entry" binding "my-bindings"
}}}

=== How do I make Pidgin use emacs-like keybindings? ===
Locate or create your `.gtkrc-2.0` file and insert the following:
{{{
gtk-key-theme-name = "Emacs"
}}}
You will need to restart Pidgin when you have finished.  Note that this will affect other GTK+ applications as well.

=== How do I bind keystrokes to menu items? ===

Locate or create your `gtkrc-2.0` file and insert:

{{{
gtk-can-change-accels = 1
}}}

After coercing Pidgin into rereading this file (for instance, by restarting it), you can hover over a menu item and hit the keystroke you want to bind to it, and your wish will be granted!  (You might want to turn off `gtk-can-change-accels` again when you're done, since it's pretty easy to bind keys by mistake with it turned on.)

(If you're a Gnome user, you should set the /desktop/gnome/interface/can_change_accels key with `gconf-editor` instead.  You don't need to restart Pidgin for this to take effect.)

=== How do I make Escape close conversation windows? ===
Locate `.purple` directory, and open the `accels` file within it. Uncomment or add the following line:
`(gtk_accel_path "<main>/Conversation/Close" "Escape")`
This must be done while Pidgin is not running.

=== How do I register for a new account? ===
This depends on the protocol.
 * '''AIM:''' Go to [http://my.screenname.aol.com/_cqr/login/login.psp?siteId=snshomepage&amp;authLev=1&amp;mcState=initialized&amp;createSn=1 this website].
 * '''MSN (including Hotmail email):'''Go to http://registernet.passport.com/
 * '''MSN (using your own email address):''' Go to http://register.passport.net/
 * '''Yahoo:''' Go to http://edit.yahoo.com/config/eval_register
 * '''XMPP (Jabber):''' This will depend on the server in question.  All Jabber servers use the XMPP account type.
 * '''ICQ:''' Go to http://web.icq.com/register
 * '''Gadu-Gadu:''' Use the official client to create an account.
 * '''Novell:''' See your Novell server administrator.

=== How do I use/make smiley themes? ===
See [wiki:SmileyThemes the page on smileys].

=== How can I unblock someone? ===
See the "Privacy" option under the "Tools" menu in the Buddy List.

=== How does Pidgin decide which saved statuses to show in the status selector? ===
Pidgin shows six "popular" saved statuses in the status selector. These are your six most recently used statuses, offset by a weight. Pidgin sorts all your saved statuses by the timestamp when they were last used.  And then, for each time you've used a status, the timestamp is increased by one day.

If you are upgrading from 1.x or lower, Pidgin is unable to determine which are the most popular states, as these older releases did not save that information.  As a result, the initial contents of the menu will be somewhat random.  It will settle over the first few uses of (distinct) states into the behavior described above.

=== Why are no states listed when I go to set a state for Auto Away? ===
Pidgin can only use saved states for Auto Away.  You need to create and save a named state first.

=== Why are the status icons so big? ===
We believe that, by adding a second line of text to each buddy list entry, we're able to show more information about each buddy on the buddy list.  The "Big List," as we call it, shows status text and idle time concisely and attractively.  Most importantly, it puts the buddy icon in the list, making it far easier to locate buddies within a large list where names are harder to pick out than images.  Due to the increased usability of this interface, we have made it the default.

We are aware that some people feel more comfortable using an interface more similar to IM clients they may have used in the past.  The 'Big List' can  be disabled by un-checking "Show buddy details" in the Buddies menu.

=== What happened to my timestamps?  Can I change them? ===
As of 2.0.0, timestamps follow the system locale.  This is a significant difference from previous versions of Pidgin, and though it was requested more than once, we know it will prove to be a controversial decision.  Fortunately for all of you out there, we also provide plugins to change it.

The two plugins we provide are the Timestamp plugin and the Message Timestamp Formats plugin.  Timestamp allows you to have iChat style timestamps, but it is implemented to behave slightly differently.  The Message Timestamp Formats plugin allows you to manipulate the timestamps in a couple different ways, such as restoring 24-hour timestamps and/or causing all timestamps to have dates in them.

=== What is a "Buddy Pounce"? ===
Pidgin introduced buddy pounces a few releases before AOL came out with "Buddy Alerts."  Despite this, you could think of a buddy pounce as an alert and get an idea of the most minimal use of a buddy pounce.  In reality, a buddy pounce is much like a macro, or a recorded action.  When you set a pounce on someone, you can choose from a number of events, such as sign on or status change, and then you choose from a number of actions.  These actions include everything from playing a sound (like an alert would do) to sending a message to the person, to executing a command.  This action will occur the next time pidgin detects the event, i.e. the next time the person in your buddy list who you have pounced signs on.

=== Can I use Pidgin for e-mail, blogging, an RSS feed, or something else that isn't IM-related? ===
No, you can't.  We get requests for this often, but Pidgin is indeed a messaging client.  Aside from the capabilities each protocol may support, the Pidgin developers have no intention to turn Pidgin into a multi-feature Internet client capable of doing everything under the sun.  We also won't be helping to develop plugins to turn it into that.  There are many Internet applications available for Linux, Windows, or whatever operating system you use that would undoubtedly do a better job.

Note that LiveJournal provides an XMPP messaging service which makes it possible to make entries to your blog via IM, no matter what XMPP-supporting IM client you use.

== Windows Specific ==

=== How does Pidgin for Windows determine which language to use? === 
For the user who installed Pidgin, the language selected during installation will be the default.
This can be overridden by setting the `PIDGINLANG` environment variable (for example, `PIDGINLANG=de`).
If neither of these are specified, it will fall back to the default Windows user locale setting.

=== Where are my settings and data (including logs) saved? ===
Data is stored in your user's "Application Data" directory in a `.purple` subdirectory.  The location of this will vary according to your setup and version of Windows.[[BR]]
 * For Windows 2000/XP/Vista(?), entering `%APPDATA%` in your Windows Explorer address bar will take you to the right directory (probably something like `C:\Documents and Settings\username\Application Data`).
 * For Windows 98/ME it will be something like `C:\Windows\Profiles\username`.
This can be overridden by setting the `PURPLEHOME` environment variable.[[BR]]
Logs are stored in a subdirectory called `logs`.

=== How do I run multiple instances of Pidgin on Windows? ===
Pidgin will, by default, prevent multiple instances from running simultaneously.
You can override this restriction by defining the `PIDGIN_MULTI_INST` environment variable.
If you do this, you may find the `-c` parameter useful to specify unique configuration directories for each instance (e.g. `-c c:\home\.pidgin-alt`).

=== How do I change the Look and Feel? ===
Pidgin doesn't support skinning.  It does, however, support using various GTK+ themes to render the widgets.  The default theme, `MS-Windows,` is designed to fit in with Windows.  The GTK+ Runtime installer now includes a utility, accessible from the Start Menu, to change the theme.

=== What should I do if Pidgin Crashes? ===
Follow the instructions [wiki:TipsForBugReports#WhattodoifPidgincrashes here] to submit a bug report.

=== Why can't I connect? My firewall is configured to allow Pidgin access. ===
We've had a lot of problems with various firewalls, particularly Norton Internet Security (and Symantec Client Firewall).  Many firewalls will not fully stop interfering with a program's ability to connect when configured to do so.[[BR]]
For Norton Internet Security, a workaround that seems to work is to add the following ports to the global `HTTP Ports` list:
 * 443 -> MSN (ssl)
 * 1863 -> MSN
 * 5050 -> Yahoo
 * 5190 -> AIM/ICQ
 * 5222 -> XMPP (including Google Talk)
 * 6667 -> IRC

The Mozilla folks maintain a good Windows Firewall information resource [http://kb.mozillazine.org/Firewalls here].

=== What is a gtkrc file and where can I find it? ===
The windowing toolkit that Pidgin uses, GTK+, is configurable via a text file.

There is a global file found in the `etc\gtk-2.0` directory your GTK+ Runtime install directory (`C:\Program Files\Common Files\GTK\2.0`, by default).
There is also per-user file (named `.gtkrc-2.0`) in your user's home directory, the location of this varies according to the version of Windows you're using and the configuration.
 * For Windows 2000/XP/Vista(?), entering `%USERPROFILE%` in your Windows Explorer address bar will take you to the right directory (probably something like `C:\Documents and Settings\username`).
 * For Windows 98/ME it will be something like `C:\Windows\Profiles\username`.

**Note that Windows Explorer will not allow you create a file that starts with a period; you'll need to use a text editor or rename the file in a cmd shell.

It is recommended that you edit your per-user file instead of the global file as the global file will be replaced when GTK+ is upgraded.

=== Where is my `.purple` directory? ===
It is in `C:\Documents and Settings\username\Application Data`  Note, that things within this directory can only be edited when Pidgin is not running.

=== Running Windows Pidgin From a USB Drive ===
It is relatively easy to set up Pidgin to run from a USB Drive.  Most of Pidgin is very good about not assuming that it is installed; a slightly customized launcher makes it all come together nicely.[[BR]]
The way that this is set up, other GTK+ applications can use the same GTK+ runtime.

 * How to setup your USB-Drive Pidgin
   * Download and Install Pidgin
   * Prepare your USB Drive: (This assumes that your USB Drive is `U:` for the purpose of explanation)
     * Create a directory: `U:\Programs` (This can be whatever you want, the idea is that GTK and Pidgin are at the same level)
     * Create `GTK` and `Pidgin` directories in this directory.
   * Copy a minimal part of your Pidgin installation to the USB Drive from the installed instance. The directory structure stays the same, but we don't need everything that is included in the standard installation.
     * Copy the whole `pixmaps` and `sounds` directories.
     * Create a `U:\Programs\Pidgin\plugins` directory and copy the contents of the installed `Pidgin\plugins` directory into it excluding `perl.dll`, `tcl.dll`.
     * If you want to use a language other than en_US, create a `U:\Programs\Pidgin\locale` directory and copy any language directories that you want from your installed `Pidgin\locale` directory.
     * Copy the contents of your root installed Pidgin directory except `pidgin.exe`, `pidgin-uninst.exe`, and if you don't want spell-checking support, `libgtkspell.dll`.
     * Download [/static/win32/pidgin-portable.exe pidgin-portable.exe] (use [/static/win32/gaim-portable.exe gaim-portable.exe] for 2.0.0beta4-6 or [/static/win32/gaim-portable.exe.pre200b4 this version] for versions older than 2.0.0beta4) and put it in `U:\Programs\Pidgin`. The file uses the same source as the standard `pidgin.exe`, the difference being that when it was compiled `PORTABLE` was defined which causes some of the initialization to be done differently.
   * In the same spirit, create a minimal GTK+ runtime installation from your GTK+ installation.
     * Copy the `bin` and `etc` directories to your `U:\Programs\GTK` directory.
     * Create a `U:\Programs\GTK\lib` directory and copy the contents of the installed GTK+ runtime's `lib` directory, except the `locale` subdirectory.
     * If you want to use a language other than en_US, create a `U:\Programs\GTK\lib\locale` directory and copy any language directories that you want from your installed GTK+ runtime's `lib\locale` directory.
   * If you want spell-checking support, you will also need to create a minimal ASpell runtime installation from your ASpell installation.
     * Create a `U:\Programs\Aspell` directory with a `bin` subdirectory.
     * Copy `aspell-15.dll` into your ASpell `bin` directory.
     * Copy the `data` and `dict` subdirectories into `U:\Programs\Aspell`.

You are done! Running `U:\Programs\Pidgin\pidgin-portable.exe` will cause pidgin to run off the USB Drive, saving the settings, logs and etc. to `U:\Programs\.purple`.

== Linux and Unix-like platforms ==

=== Where are Pidgin's settings and logs? ===
Because Pidgin is a libPurple client, it stores its settings and logs in ~/.purple.

=== How do I get sound to work correctly? ===
Pidgin uses gstreamer to play sounds.  Playing sounds directly through esound or arts is no longer supported.  To compile Pidgin with support for gstreamer you need libgstreamer0.10-dev and its dependencies.  These packages are named differently on different platforms.  If you do not wish to install these packages you can also just change your sound playing method in preferences to `Command` and use `esdplay %s` or `artsplay %s`.

=== How do I make Pidgin use ALSA or OSS for playing sounds?  What does the "Automatic" option do? ===
The "Automatic" option lets gstreamer pick how the sounds are played.  You can use the `gstreamer-properties` tool to control this if you use GNOME.

=== Why does Pidgin use the same `WM_CLASS` for every window? ===
Both strings in the `WM_CLASS` property are supposed to be the same for all windows in the same instance of an application.  ICCCM states that one is meant to be the same for all instances of the application and the other is meant to be unique to that instance of the application.  ICCCM also states, "If a client has multiple windows with identical `WM_CLASS` and `WM_NAME` properties, then it should provide a `WM_WINDOW_ROLE` property."

GTK+ sets these `WM_CLASS` values for us so that they are unique for Pidgin instances, and the documentation for the `gtk_window_set_wmclass` function says explicitly not to use it for anything else.  Pidgin uses the `WM_WINDOW_ROLE` hint to differentiate windows.  If your window manager is having problems differentiating between Pidgin windows, please ensure it uses the `WM_WINDOW_ROLE` hint per the ICCCM.
